import { RequestBody } from 'alova';

import ApiClient from '@/api/apiClient';
type Merged<T, U> = T & U;
export interface BulletinInfoType {
	/**
	 * 创建人
	 */
	createBy?: string;
	/**
	 * 创建人id
	 */
	createId?: number;
	/**
	 * 创建时间
	 */
	createTime?: string;
	/**
	 * 详情描述
	 */
	description?: string;
	/**
	 * 主键
	 */
	id?: number;
	/**
	 * 是否逻辑删除，0否,其他是
	 */
	isDelete?: number;
	/**
	 * 优先级 0: 普通 1: 重要
	 */
	priority?: number;
	/**
	 * 发布时间
	 */
	publishTime?: string;
	/**
	 * 租户编号
	 */
	tenantId?: number;
	/**
	 * 通知标题
	 */
	title?: string;
	/**
	 * 是否置顶0:否 1:是
	 */
	top?: number;
	/**
	 * 修改人
	 */
	updateBy?: string;
	/**
	 * 修改人id
	 */
	updateId?: number;
	/**
	 * 更新时间
	 */
	updateTime?: string;
	/**
	 * 乐观锁版本号
	 */
	version?: number;
	[property: string]: any;
}

/** 公告-列表 */
export const adminNoticeListApi = (data: RequestBody) => {
	return ApiClient.Post<API.ListType<BulletinInfoType>>('/bulletinInfo/page', data, {
		meta: {
			auth: true
		}
	});
};
/** 公告-详情 */
export const adminNoticeDetailApi = (data: Merged<RequestBody, { id: number }>) => {
	return ApiClient.Get<BulletinInfoType>(`/bulletinInfo/get/${data?.id}`, {
		meta: {
			auth: true
		}
	});
};
/** 公告-增与编辑 */
export const adminNoticeAddApi = (data: RequestBody) => {
	return ApiClient.Post('/bulletinInfo/saveOrUpdate', data);
};
/** 公告-删除 */
export const adminNoticeDeleteApi = (data: Merged<RequestBody, { id: number }>) => {
	return ApiClient.Post(`/bulletinInfo/delete/${data?.id}`, data, {
		params: data
	});
};
